home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: New Zealand Amiga Users Group / New Zealand Amiga Users Group Newsdisk v27 (1989-12)(NZAmigaUG).zip / New Zealand Amiga Users Group Newsdisk v27 (1989-12)(NZAmigaUG).adf / Crash / crash.asm < prev    next >
Assembly Source File  |  1993-12-03  |  1KB  |  111 lines

  1.     INCDIR        "vd0:include/"
  2.     INCLUDE     "exec/exec_lib.i"
  3.     INCLUDE        "libraries/dos_lib.i"
  4.     INCLUDE        "misc/easystart.i"
  5.         
  6.         
  7. ExecBase    equ    4
  8. MEMF_P        equ    0    
  9.  
  10.     movea.l    ExecBase,a6
  11.     move.w    #-1,d0 
  12.     jsr    _LVOAllocTrap(a6)
  13.     cmp.b    #-1,d0
  14.     beq    end_1
  15.     move.b    d0,Trap_Value
  16.     addi.l    #32,d0            Add 32 ($20) To Trap value received
  17.     lsl    #2,d0           * 4 to get address off traps autovector            
  18.     move.l    d0,Trap_Autovector
  19.  
  20. T_Hand    moveq    #CodeSiz,d0
  21.     moveq    #MEMF_P,d1
  22.     jsr    _LVOAllocMem(a6)
  23.     tst.l    d0
  24.     beq    end_1
  25.     move.l    d0,a0
  26.     move.l    d0,a2
  27.     lea.l    Crash(PC),a1
  28.     moveq    #CodeSiz,d0
  29.     subq    #1,d0            correct fo dbf in loop
  30.  
  31. Loop    move.b    (a1)+,(a0)+
  32.     dbf.w    d0,Loop
  33.             
  34.     move.l    Trap_Autovector,a1
  35.     move.l    a2,(a1)
  36.         
  37.  
  38. CallTr    clr.l    d0
  39.     move.b    Trap_Value,d0
  40.     lsl    #2,d0            cal index for jmp table
  41.     lea    SelTrap,a0
  42.     move.l    0(a0,d0.w),a0
  43.     jsr    (a0)
  44.     rts
  45.             
  46. SelTrap    dc.l    Trap_0,Trap_1,Trap_2,Trap_3,Trap_4,Trap_5
  47.     dc.l    Trap_6,Trap_7,Trap_8,Trap_9,Trap_10,Trap_11
  48.     dc.l    Trap_12,Trap_13,Trap_14,Trap_15        
  49.             
  50. Trap_0    trap    #0
  51.     rts    
  52.             
  53. Trap_1    trap    #1
  54.     rts
  55.  
  56. Trap_2    trap    #2
  57.     rts
  58.  
  59. Trap_3    trap    #3
  60.     rts
  61.  
  62. Trap_4    trap    #4
  63.     rts
  64.  
  65. Trap_5    trap    #5
  66.     rts
  67.  
  68. Trap_6    trap    #6
  69.     rts
  70.  
  71. Trap_7    trap    #7
  72.     rts
  73.  
  74. Trap_8    trap    #8
  75.     rts
  76.  
  77. Trap_9    trap    #9
  78.     rts
  79.  
  80. Trap_10    trap    #10
  81.     rts
  82.  
  83. Trap_11    trap    #11
  84.     rts
  85.  
  86. Trap_12    trap    #12
  87.     rts
  88.  
  89. Trap_13    trap    #13
  90.     rts
  91.  
  92. Trap_14    trap    #14
  93.     rts
  94.  
  95. Trap_15    trap    #15
  96.     rts
  97.  
  98. end_1    moveq    #3,d1
  99.     rts
  100.  
  101. Crash    reset 
  102.     rte
  103.  
  104. CodeEnd
  105. CodeSiz        equ    CodeEnd-Crash
  106.  
  107. Trap_Value    dc.b        0
  108. Trap_Autovector    dc.l        0       
  109.  
  110.         END
  111.